package file.it.buffered_stream;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Test3 {
    public static void main(String[] args) {
        // 目标：恢复出师表的顺序到新文件中
        try (
                // 2、创建缓冲字符输入流管道（读取行信息）与源文件接通
                // 高级管道包低级管道  new BufferedReader(new FileReader("src/csb.txt"))
                BufferedReader br = new BufferedReader(new FileReader("src/csb.txt"));
                // 高级管道包低级管道 new BufferedReader(new FileReader("src/newcsb.txt"));
                BufferedWriter bw = new BufferedWriter(new FileWriter("src/newcsb.txt"));
        ) {
            // 1、定义一个ArrayList集合存储每段内容
            List<String> data = new ArrayList<>();

            // 3、按照行读取每段，存入到集合中去
            String line;
            while ((line = br.readLine()) != null) {
                data.add(line);
            }

            // 4.对List集合中的每段文章进行排序
            Collections.sort(data);
            System.out.println(data);

            // 5.遍历List集合的每段(ln)内容，依次写出去到新文件中
            for (String ln : data) {
                bw.write(ln);
                bw.newLine(); // 换行
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
